Contributed by Students
This was one of the courses I did as part of my MCS program, and all-in-all the fourth algorithms class I've taken: I did two in my undergraduate degree, one in my qualifying year, and then this one, so I already knew lots of the algorithmic topics covered in the class, but even then there were things I didn't know. The course was well-taught, but repetitive in my opinion due to my background and taking three previous courses that covered the same topics.
CP 600
The techniques of algorithm design form one of the core practical technologies of computer science. This course focuses on advanced techniques for designing and analysing algorithms, and explores their use in a variety of application areas. Topics include: sorting and search algorithms, graph traversal algorithms, combinatorial search, heuristics methods, and dynamic programming, intractable problems. Students learn the skill of recognizing computational complexities of computing problems and designing solutions for them.